package org.zk.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.zk.dao.TopicDao;
import org.zk.entity.Topic;

import java.util.List;
import java.util.Map;

/**
 * 说明:资讯相关的业务层
 *
 * @姚文斌
 * @create 2019-11-18 下午 5:03
 */
@Service
public class TopicService {
    /**
     * ====================================== 注入dao层 ================================
     */
    @Autowired
    @Setter
    @Getter
    private TopicDao topicDao;
    /**
     * =================================== Topic 资讯相关的业务 =========================================
     */

    //1.查询所有的资讯
    public List<Topic> allTopic(Topic t){
        return topicDao.allTopic(t);
    }
    //2.删除指定topic
    public int del(Topic topic){
        return topicDao.del(topic);
    }
    /**
     * ======================================= 手动分页的方式 =======================================
     */
    //3.查询所有的数据并完成分页，此方法中调用了多个Dao层的接口
    public Page queryLikeTopics(Map<String, Object> cond) {
        //该Page是我们mybatis-config.xml中的配置的自动分页的插件中的类，可以直接使用
        Page page = new Page();
        //调用dao层接口获得总条数并赋给分页插件中对应的total属性
        page.setTotal(topicDao.getLikeTopicsCount(cond));
        //分别获取每页条数和当前页
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        page.setPageNum(curPageNum);

        //注意：下面两句一定要写在一起，pageHelper插件会自动把查询结果进行分页
        page = PageHelper.startPage(curPageNum, pageSize);
        List list = topicDao.getLikeTopics(cond);

        return page;//把分页插件中的page对象返回
    }
}
